Drop on demand inkjet technology for producing printed media has been employed in commercial products such as printers, plotters, and facsimile machines. Generally, an inkjet image is formed by selectively ejecting ink drops onto an image substrate from a plurality of drop generators or inkjets, which are arranged in a printhead or a printhead assembly. For example, the printhead assembly and the image substrate are moved relative to one another and the inkjets are controlled to eject ink drops at appropriate times. The timing of the inkjet activation is performed by a printhead controller, which generates firing signals that selectively activate inkjets to eject ink onto an image substrate. The image substrate may be an intermediate image member, such as a print drum or belt, from which the ink image is later transferred to a print medium, such as paper. The image substrate may also be a moving web of print medium or sheets of a print medium onto which the ink drops are directly ejected. The ink ejected from the inkjets may be liquid ink, such as aqueous, solvent, oil based, UV curable ink or the like, which is stored in containers installed in the printer. Alternatively, the ink may be loaded in a solid form and delivered to a melting device, which heats the solid ink to its melting temperature to generate liquid ink, which is supplied to a printhead.
During the operational life of an inkjet printer, inkjets in one or more of the printheads may become unable to eject ink reliably or accurately in response to receiving a firing signal. These inoperative inkjets may become operational after one or more image printing cycles. In other cases, the inkjet may remain unable to eject ink reliably or accurately until a purge cycle is performed. A purge cycle may successfully unclog inkjets so that they are able to eject ink once again. Execution of a purge cycle, however, requires the imaging apparatus to be taken out of its image generating mode. Thus, purge cycles affect the throughput rate of an imaging apparatus and are preferably performed during downtime. Inkjets that cannot reliably or accurately eject ink in response to a firing signal or that eject a smaller amount of ink than the firing signal would obtain from an operational inkjet are denoted as inoperative inkjets in this document.
Missing inkjet compensation (MJC) methods have been developed that enable an imaging apparatus to generate images even though one or more inkjets in the imaging apparatus are unable to eject ink. These compensation methods operate on the output of image halftoning processes to modify the halftoned data used to generate firing signals for inkjets in a printhead. As used in this document, “halftoning” refers to the processes performed by a marking engine on image data values to generate output image values. These output image values are used to generate firing signals, which cause the inkjets of a printhead to eject ink onto the recording media. Once the output image values are generated, a compensation method may use information regarding inoperative inkjets detected in a printhead to identify the output image data values that correspond to one or more inoperative inkjets in the printhead. The marking engine then uses a compensation method to find a neighboring or nearby output image data value that can be adjusted to compensate for the inoperative inkjet. Preferably, an increase in the amount of ink ejected near the inoperative inkjet may be achieved by replacing a zero output image value with the output image value that corresponds to the inoperative inkjet. Thus, the marking engines generate halftoned data for all of the inkjets in each printhead since the engines operate with the assumption that all inkjets in the printhead are operable. Only after the halftoned data is generated do the MJC methods distinguish between halftoned data corresponding to inoperative inkjets and halftoned data corresponding to operative inkjets. To process all of the halftoned data appropriately, some previously known printers implement MJC methods in hardware, such as in an ASIC, FPGA, or the like, to handle the amount of halftoned data produced. Other previously known printers, however, cannot be configured with the hardware required for implementing MJC methods. Instead, these printers perform the MJC method using only software executed by one or more processors in the printer. The time necessary for the computations can adversely impact the throughput of these printers. Faster and more efficient MJC methods would be beneficial.